//: [Previous](@previous)
/*:
 #1 [Two Sum](https://oj.leetcode.com/problems/two-sum/)
 
 Given an array of integers, return **indices** of the two numbers such that they add up to a specific target.
 
 给定一个整数数组和一个目标值，找出数组中和为目标值的两个数。
 
 You may assume that each input would have **exactly** one solution, and you may not use the same element twice.
 
 你可以假设每个输入只对应一种答案，且同样的元素不能被重复利用。
 
 Example:
 
 ```
 Given nums = [2, 7, 11, 15], target = 9,
 
 Because nums[0] + nums[1] = 2 + 7 = 9,
 return [0, 1].
 ```
 
 T: O(n)
 S: O(n)
 
 */
import Foundation

class Solution {
    func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
        var hashMap = [Int: Int]()
        for (i, num) in nums.enumerated() {
            if let l = hashMap[target - num] {
                return [l, i]
            }
            hashMap[num] = i
        }
        
        return []
    }
}

print(Solution().twoSum([2,7,11,15], 9))

//: [Next](@next)
